This invention relates generally to the field of computer systems, and in particular to preventing and recovering from TLB corruption due to soft errors.
As fabrication processes improve over time, the size of storage elements decreases making them more susceptible to soft errors. Soft errors occur when incident radiation changes the electrical charge being held by a storage element, thereby changing its binary state. As the statistical significance of soft errors has been increasing, storage structures such as latches that were previously less prone to soft errors are now in need of protection.
Soft errors, if undetected, can silently corrupt data for a program during its execution. If the program continues to execute incorrect results may be generated. This type of silent data corruption (SDC) is especially undesirable in mission critical applications, such as for commercial transaction server applications, where wrong results can have broad-reaching implications.
Translation lookaside buffers (TLBs) have used parity checking and functional redundancy in their arrays to check for soft errors in virtual page numbers, physical frame numbers, etc. However, redundancy requires significant additional circuitry to provide error correction, and parity alone provides a detection mechanism but not a correction mechanism. Furthermore, detecting and correcting soft errors in the latches that receive output data when the array is read have not previously been addressed.